import { Column, CreateDateColumn, Entity, Index, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';

/**
 * 管理员用户实体
 */
@Entity('admin_users', { comment: '管理员用户表' })
export class AdminUser {
    /**
     * 主键ID
     */
    @PrimaryGeneratedColumn({ type: 'bigint', unsigned: true })
    id?: number;

    /**
     * 用户名
     */
    @Column({
        type: 'varchar',
        length: 50,
        name: 'username',
        comment: '用户名'
    })
    @Index('idx_username', { unique: true })
    username?: string;

    /**
     * 密码
     */
    @Column({
        type: 'varchar',
        length: 100,
        name: 'password',
        comment: '密码'
    })
    password?: string;

    /**
     * 昵称
     */
    @Column({
        type: 'varchar',
        length: 50,
        name: 'nickname',
        comment: '昵称',
        nullable: true
    })
    nickname?: string | null;

    /**
     * 头像
     */
    @Column({
        type: 'varchar',
        length: 255,
        name: 'avatar',
        comment: '头像',
        nullable: true
    })
    avatar?: string | null;

    /**
     * 状态 (1:启用, 0:禁用)
     */
    @Column({
        type: 'tinyint',
        name: 'status',
        comment: '状态 (1:启用, 0:禁用)',
        default: 1
    })
    status?: number;

    /**
     * 创建人
     */
    @Column({
        type: 'bigint',
        name: 'created_by',
        comment: '创建人ID',
        nullable: true
    })
    createdBy?: number | null;

    /**
     * 修改人
     */
    @Column({
        type: 'bigint',
        name: 'updated_by',
        comment: '修改人ID',
        nullable: true
    })
    updatedBy?: number | null;

    /**
     * 创建时间
     */
    @CreateDateColumn({
        type: 'timestamp',
        name: 'create_time',
        comment: '创建时间'
    })
    createTime?: Date;

    /**
     * 更新时间
     */
    @UpdateDateColumn({
        type: 'timestamp',
        name: 'updated_time',
        comment: '更新时间'
    })
    updatedTime?: Date;
} 